home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 7
/
FM Towns Free Software Collection 7.iso
/
t_os
/
komei4
/
komei4.exe
/
ICON
/
NAO_E.HD6
< prev
next >
Wrap
Text File
|
1993-06-17
|
7KB
|
639 lines
ds_name db 'MOJ\NAO_E',0
; 直すアイコンの表示の箱一つ
; MOTO_E から呼ばれて指定されたアイコンを表示
; 拡大画面に転送
; 指示されて新しいアイコンを覚えている場所に戻す
; 古いアイコンを自分に表示
; MOTO_E に新しいアイコンを表示させる
paint_wd:
SET_P dt1
RAM0 edi
call kae_dt1
mov [esi],edi
mov ax,ds
mov [esi+4],ax
call kae_dt2
mov [esi],edi
mov [esi+4],ax
call chibi
mov [esi],edi
mov [esi+4],ax
call deka
mov [esi],edi
mov [esi+4],ax
call moto_dt
mov word ptr [edx],1
re_paint:
WD_CLS 0
BOX boxdt,1
ret
dt1:
call sub_edi
dw 0
db 'MOTO_E',0
p_call:
M_P_CALL
p_set:
M_P_SET
be_called:
YOMU ax,300
cmp ax,1
je kita ;MOTO_Eより、絵を直せ
cmp ax,3
je modo ;アイコン表に新しい絵をしまう。
cmp ax,4
je b_ful ; ボックスを前の色で塗り潰す
cmp ax,5
je up_down ;画像を上下入れ換える
cmp ax,6
je migi
cmp ax,7
je up_roll
cmp ax,8
je sd_roll
cmp ax,9
je up2_roll
cmp ax,10
je sd2_roll
cmp ax,400
je neru
cmp ax,500
je okiru
ret
neru:
WD_ERZ 1
WD_ERZ 0
WD_LEFT
ret
okiru:
WD_WANT
jmp re_paint
up_roll:
mov edi,40000h
mov esi,40000h
mov eax,41
shl eax,9
add edi,eax ;line 41
add esi,eax
mov ebx,162 ;324/2 1byte=2dot
add edi,ebx
add esi,ebx
mov ecx,31
push ds
mov ax,120h ;vram セレクタ
mov ds,ax
mov eax,[edi+12]
push eax
mov eax,[edi+8]
push eax
mov eax,[edi+4]
push eax
mov eax,[edi]
push eax
add esi,512
up_r1:
mov eax,[esi]
mov [edi],eax
add esi,4
add edi,4
mov eax,[esi]
mov [edi],eax
add esi,4
add edi,4
mov eax,[esi]
mov [edi],eax
add esi,4
add edi,4
mov eax,[esi]
mov [edi],eax
; add esi,4
; add edi,4
add edi,512-12
add esi,512-12
loop up_r1
pop eax
mov [edi],eax
pop eax
mov [edi+4],eax
pop eax
mov [edi+8],eax
pop eax
mov [edi+12],eax
pop ds
jmp dada1
;----------------
up2_roll:
push ds
mov ax,120h ;vram セレクタ
mov ds,ax
mov edi,40000h
mov esi,40000h
mov eax,41+30
shl eax,9
add edi,eax ;line 41
add esi,eax ;line 41
mov ebx,162 ;324/2 1byte=2dot
add edi,ebx
add esi,ebx
add edi,512
mov eax,[edi+12]
push eax
mov eax,[edi+8]
push eax
mov eax,[edi+4]
push eax
mov eax,[edi]
push eax
mov ecx,31
up2_r1:
mov eax,[esi]
mov [esi+512],eax
add esi,4
mov eax,[esi]
mov [esi+512],eax
add esi,4
mov eax,[esi]
mov [esi+512],eax
add esi,4
mov eax,[esi]
mov [esi+512],eax
; add esi,4
sub esi,512+12
loop up2_r1
add esi,512
pop eax
mov [esi],eax
pop eax
mov [esi+4],eax
pop eax
mov [esi+8],eax
pop eax
mov [esi+12],eax
pop ds
jmp dada1
;------------
sd_roll:
mov edi,40000h
mov esi,40000h
mov eax,41
shl eax,9
add edi,eax ;line 41
add esi,eax
mov ebx,162 ;324/2 1byte=2dot
add edi,ebx
add esi,ebx
push ds
mov ax,120h ;vram セレクタ
mov ds,ax
mov ecx,15
mov ebx,32
sd_r2:
mov ah,[edi]
sd_r1:
mov al,[edi+1]
mov [edi],al
inc edi
loop sd_r1
mov [edi],ah
add edi,512-15
mov ecx,15
dec ebx
jne sd_r2
pop ds
jmp dada1
;------------
sd2_roll:
mov edi,40000h
mov esi,40000h
mov eax,41
shl eax,9
add edi,eax ;line 41
add esi,eax
mov ebx,162+15 ;324/2 1byte=2dot
add edi,ebx
add esi,ebx
push ds
mov ax,120h ;vram セレクタ
mov ds,ax
mov ecx,15
mov ebx,32
sd2_r2:
mov ah,[edi]
sd2_r1:
mov al,-1[edi]
mov [edi],al
dec edi
loop sd2_r1
mov [edi],ah
add edi,512+15
mov ecx,15
dec ebx
jne sd2_r2
pop ds
jmp dada1
;--------------
; 右と左を入れ換える
migi:
mov edi,40000h
mov esi,40000h
mov eax,41
shl eax,9
add edi,eax ;line 41
add esi,eax
mov ebx,162 ;324/2 1byte=2dot
add edi,ebx
add esi,ebx
add esi,15 ;line の尻尾
push ds
mov ax,120h ;vram セレクタ
mov ds,ax
mov ebx,32
pp_2:
mov ecx,8 ;32/2/4
lp_3:
mov ah,[edi]
mov al,[esi]
sub edx,edx
mov dh,ah
shr dh,4
shl ah,4
add ah,dh
mov dl,al
shr dl,4
shl al,4
add al,dl
mov [esi],ah
mov [edi],al
inc edi
dec esi
loop lp_3
add edi,512-8
add esi,512+8
dec ebx
cmp ebx,0
jne pp_2
pop ds
jmp dada1
;----------------
; x1 = 324 y1 = 41
; x2 = 324 y2 = 72
; line=32=16byte
up_down:
mov edi,40000h
mov esi,40000h
mov eax,41
shl eax,9
add edi,eax ;line 41
mov ebx,162 ;324/2 1byte=2dot
add edi,ebx
mov eax,72
shl eax,9
add esi,eax ;line 41
add esi,ebx
push ds
mov ax,120h ;vram セレクタ
mov ds,ax
mov ebx,16
pp_1:
mov ecx,4 ;32/2/4
lp_2:
mov eax,[edi]
mov edx,[esi]
mov [esi],eax
mov [edi],edx
add esi,4
add edi,4
; dec ecx
; cmp ecx,0
; jne lp_2
loop lp_2
add edi,512-16
sub esi,512+16
dec ebx
cmp ebx,0
jne pp_1
pop ds
jmp dada1
modo:
mov ah,5
mov al,1
call zzz
; call moto_dt ;新しいアイコンを元の場所にしまう。
; movzx eax,word ptr [edx]
KAKU word ptr 300,6
CALL_P dt1 ;302 アイコン番号
YOMU ax,302
movzx eax,ax
dec eax
mov ebx,512
mul ebx
mov edi,3*1024
add edi,eax
call kae_dt
mov [esi],edi
mov ah,24h
call zzz
call kae_dt1
mov ah,24h
call zzz ;古いアイコンをget
call kae_dt2
mov ah,25h
call zzz ;古いアイコンをgput
call dadada ;古いアイコンを拡大枠へ
KAKU word ptr 300,4
GO_P dt1 ;MOTO_Eに新しいアイコンを表示させる
kae_dt:
call sub_esi
dd 0
dw 114h
dw 324
dw 41
dw 324+31
dw 41+31
kae_dt2:
call sub_esi
dd 0
dw 14h
dw 324
dw 41
dw 324+31
dw 41+31
kae_dt1:
call sub_esi
dd 0
dw 14h
dw 264
dw 41
dw 264+31
dw 41+31
kita:
YOMU ax,302
call moto_dt
mov [edx],ax
call icon_dt
mov [edi+10],ax
call u_con
dada1:
mov ah,5
mov al,1
call zzz
dadada:
call chibi
mov ah,26h
mov al,0
call zzz
call deka
mov ah,27h
mov al,0
call zzz
call kesu_ms
ret
kesu_ms:
M_KESUMS
chibi:
call sub_esi
dd 0
dw 0
dw 324
dw 41
dw 324+31
dw 41+31
dw 32
dw 32
deka:
call sub_esi
dd 0
dw 0
dw 370
dw 0
dw 370+255
dw 255
dw 32
dw 32
boxdt1:
call sub_edi ; edi 固定です。
dw 1,33,33,0,0,0,20,15,0,1
b_ful:
YOMU ax,302
call boxdt1
mov [edi+14],ax
mov [edi+16],ax
BOX boxdt1,1
ret
mouse_in:
ret
moto_dt:
call sub_edx
dw 1
icon_dt:
call sub_edi
dw 1,1,1,32,0,1,0 ;s_no,of_x,of_y,+x,+y,no,0
u_con:
mov ah,2
mov al,0
call MOUSE
mov al,31
mov ah,100
call komei1
mov ah,2
mov al,1
call MOUSE
ret
look_me:
call sub_esi ; esi 固定です。
dd 0,0
dw 1 ; ここが 1 の物は open start です。
dw 0
dw 33,33,323,40,15,0,0,0
boxdt:
call sub_edi ; edi 固定です。
dw 1,33,33,0,0,0,20,15,0,0
; [count][sz_x][sz_y][off_x][off_y][+x][+y][f_col][b_col][s_no]
zzz:
M_ZZZ